import request from '@/utils/request'

// 上传图片文件（旧版本，向后兼容）
export function uploadImage(file) {
  const formData = new FormData()
  formData.append('file', file)
  
  return request({
    url: '/api/upload/image',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

// 上传图片文件（新版本，支持类型参数）
export function uploadImageWithType(file, type = 'general') {
  const formData = new FormData()
  formData.append('file', file)
  formData.append('type', type)
  
  return request({
    url: '/api/upload/image',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

// 上传用户头像
export function uploadAvatar(file) {
  return uploadImageWithType(file, 'avatar')
}

// 上传封面图片
export function uploadCover(file) {
  return uploadImageWithType(file, 'cover')
}

// 上传文章图片
export function uploadArticleImage(file) {
  return uploadImageWithType(file, 'article')
}

// 上传相册图片
export function uploadAlbumImage(file) {
  return uploadImageWithType(file, 'album')
}

// 上传照片
export function uploadPhoto(file) {
  return uploadImageWithType(file, 'photo')
}

// 上传内容图片（编辑器中的图片）
export function uploadContentImage(file) {
  return uploadImageWithType(file, 'content')
}

// 上传系统图片
export function uploadSystemImage(file) {
  return uploadImageWithType(file, 'system')
}

// 获取支持的上传类型列表
export function getUploadTypes() {
  return request({
    url: '/api/upload/types',
    method: 'get'
  })
}

// 删除图片文件
export function deleteImage(fileUrl) {
  return request({
    url: '/api/upload/image',
    method: 'delete',
    params: { fileUrl }
  })
}

// 检查图片文件是否存在
export function checkImageExists(fileUrl) {
  return request({
    url: '/api/upload/image/check',
    method: 'get',
    params: { fileUrl }
  })
}
